home *** CD-ROM | disk | FTP | other *** search
-
-
-
- MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD)))) MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD))))
-
-
-
- NNNNAAAAMMMMEEEE
- mandel - display of Mandelbrot and Julia set images
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- mmmmaaaannnnddddeeeellll [-fjmopv] [-c <coord>] [-i max_iterations]
- [-n num_local_processes] [fname]
-
- mmmmaaaannnnddddeeeellllzzzzoooooooommmm
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _M_a_n_d_e_l is a program for exploring the Mandelbrot set and displaying
- Mandelbrot and Julia images. The demo consists of two executables:
- mmmmaaaannnnddddeeeellll and mmmmaaaannnnddddeeeellllzzzzoooooooommmm. The mmmmaaaannnnddddeeeellll program does mandelbrot calculations
- and also displays the resulting images. By default, it does this on a
- single host. However, mmmmaaaannnnddddeeeellll is capable of connecting to remote hosts
- which can contribute to the calculations. For this to happen, the
- mmmmaaaannnnddddeeeellllzzzzoooooooommmm program must exist on the desired remote host(s). mmmmaaaannnnddddeeeellll can
- then cause the remote mmmmaaaannnnddddeeeellllzzzzoooooooommmm programs to start executing, and it can
- connect to them.
-
- RRRReeeessssoooouuuurrrrcccceeee FFFFiiiilllleeee
- When mmmmaaaannnnddddeeeellll executes, it looks for a file named '.mandelrc,' first in the
- current working directory and then in the home directory. This file
- contains a list of host names and directory names where mmmmaaaannnnddddeeeellllzzzzoooooooommmm can be
- found, and also the values of some other options. See the
- mandelrc.sample file in the /usr/demos/General_Demos/mandel directory as
- a sample.
-
- If no .mandelrc file exists, mmmmaaaannnnddddeeeellll simply creates one or more processes
- on the local machine to do the calculations, and it connects to these
- process using unix pipes. The number of processes depends on the number
- of cpus.
-
- Within the .mandelrc file you may specify initial values for some of the
- options used by the mmmmaaaannnnddddeeeellll program. Allowable types of lines are as
- follows:
-
- 1111.... zoomdir: dirname
-
- "dirname" is the directory name where mmmmaaaannnnddddeeeellllzzzzoooooooommmm resides. The
- default zoomdir is /usr/demos/General_Demos/mandel.
-
- 2222.... logname: lname
-
- "lname" will be used as the default login name when making
- connections to hosts.
-
- 3333.... passwd: defpasswd
-
- This specifies the default passwd to be used with the default login
- name. Two quotes ("") denote an empty string.
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD)))) MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD))))
-
-
-
- (Currently passwd is ignored.)
-
- 4444.... remhosts: hostname [-l loginname] [-p passwd] [dirname]
-
- mmmmaaaannnnddddeeeellllzzzzoooooooommmm is expected to reside in "dirname" on the host
- "hostname." If a directory name is not specified, then zoomdir is
- used.
-
- 5555.... color dir: dirname
-
- "dirname" is the pathname of the directory containing mandel color
- files.
-
- 6666.... row delta: <n>
-
- 7777.... rows per farmout: <n>
-
- 8888.... interpolate data: "yes" or "no"
-
- 9999.... sparse rows: "yes" or "no" or "use threshold"
-
- 11110000.... sparse thresh: <n>
-
- 11111111.... num local procs: <n>
-
- This is the number of local process created to do mandel/julia
- calculations. This is done entirely within mmmmaaaannnnddddeeeellll. This count does
- not include any mmmmaaaannnnddddeeeellllzzzzoooooooommmm executions.
-
- 11112222.... rexec timeout: <n>
-
- This is the maximum number of seconds mmmmaaaannnnddddeeeellll will take in starting
- up a mmmmaaaannnnddddeeeellllzzzzoooooooommmm execution before it gives up.
-
- 11113333.... color distrib: "linear" or "maximize [n]"
-
- where n is 1, 2, or 3 (or n may be omitted).
-
- Default values are used if none of the above are given.
-
- 11114444.... A comment line, denoted by a "#" as the first character in a line.
-
- The mmmmaaaannnnddddeeeellllzzzzoooooooommmm program can be placed on up to MAXHOSTS remote hosts.
- MAXHOSTS is initialized to be 50. For those users who installed the demo
- source, MAXHOSTS is defined in mangfx.h.
-
- OOOOppppttttiiiioooonnnnssss
- The mmmmaaaannnnddddeeeellll program may take options and arguments.
-
- _m_a_n_d_e_l _o_p_t_i_o_n_s
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD)))) MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD))))
-
-
-
- ----cccc <<<<ccccoooooooorrrrdddd>>>> A coordinate is to follow instead of fname.
-
- Coord format: xxxxccccoooorrrrnnnneeeerrrr yyyyccccoooorrrrnnnneeeerrrr ssssiiiiddddeeee [[[[sssseeeeeeeeddddrrrr sssseeeeeeeeddddiiii]]]]
-
- xxxxccccoooorrrrnnnneeeerrrr,,,, yyyyccccoooorrrrnnnneeeerrrr (xcorner, ycorner) = complex coordinate of
- the lower left corner of the rectangle. In screen (pixel)
- coordinates, the rectangle has corners (0, ymin) and
- (xmax-1, ymax-1).
-
- ssssiiiiddddeeee side = horizontal length of the complex rectangle.
-
- sssseeeeeeeeddddrrrr,,,, sssseeeeeeeeddddiiii (seedr, seedi) = coordinate of the (Julia)
- seed point. seedr & seedi exist only in the "extended
- format" implied by the -j option.
-
- ----ffff Use a fixed-size window. fname is displayed with the same
- size as when it was saved.
-
- ----iiii <<<<nnnn>>>> Specify number of iterations to use for calculations.
-
- ----jjjj Do Julia calculations instead of Mandelbrot. Only
- applicable if coordinate is given. Also, implies that
- coord is an "extended coordinate" containing a seed point.
-
- ----mmmm max-precision floating point (128-bits).
-
- ----nnnn <<<<nnnn>>>> Number of local (non-network) processes mandel uses for
- calculations.
-
- ----oooo Compatibility with some old IRIS GL programs which use
- color cells 256 - 640.
-
- ----pppp Calculation processes will send compressed data. (Useful
- if network bandwith is a limitation).
-
- ----vvvv Variable-size window.
-
- ffffnnnnaaaammmmeeee Name of file containing mandelbrot data. If fname is
- omitted, the image will be generated.
-
- _m_a_n_d_e_l_z_o_o_m _o_p_t_i_o_n_s
-
- The mmmmaaaannnnddddeeeellllzzzzoooooooommmm program does not take any command line options. However,
- it reads various commands from stdin, and it writes mandelbrot data to
- stdout.
-
- OOOOppppeeeerrrraaaattttiiiioooonnnn
- The _l_e_f_t _m_o_u_s_e button is used to drag out a rectangular area which will
- be zoomed. (This operation may be cancelled by pressing either _m_i_d_d_l_e
- _m_o_u_s_e or the _E_S_C_A_P_E key while _l_e_f_t _m_o_u_s_e is still down.)
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD)))) MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD))))
-
-
-
- The _r_i_g_h_t _m_o_u_s_e button brings up the menu. The menu items are as
- follows:
-
- ggggeeeennnneeeerrrraaaatttteeee allows you to re-generate the current picture (either
- zoomed or not), or to re-generate the previous image. From
- this menu, selecting ccccuuuurrrrrrrreeeennnntttt causes the current picture to
- be re-generated. PPPPrrrreeeevvvviiiioooouuuussss re-creates the previously
- displayed picture. FFFFiiiirrrrsssstttt ppppiiiicccc displays the first image.
- HHHHoooommmmeeee displays the initial mandelbrot set. ZZZZoooooooommmm oooouuuutttt allows
- you to zoom out from the current image by one of a given
- range of zoom values.
-
- cccchhhhaaaannnnggggeeee ccccoooolllloooorrrrssss allows you to select one of several color ramps.
-
- ccccoooolllloooorrrr ddddiiiissssttttrrrriiiibbbbuuuuttttiiiioooonnnn
- specifies how mandel maps the number of colors from the
- mandel data onto the number of display colors. The choices
- are
-
- lllliiiinnnneeeeaaaarrrr
- mmmmaaaaxxxxiiiimmmmiiiizzzzeeee ccccoooolllloooorrrrssss 1111
- mmmmaaaaxxxxiiiimmmmiiiizzzzeeee ccccoooolllloooorrrrssss 2222
- mmmmaaaaxxxxiiiimmmmiiiizzzzeeee ccccoooolllloooorrrrssss 3333.
-
- If there are 32768 mandel data colors and, say, 4096
- display colors, then lllliiiinnnneeeeaaaarrrr causes the first 8 colors 0 - 7
- to be mapped to color 0 of the display, colors 8 - 15 to be
- mapped to display color 1, etc. Unfortunately, the mandel
- data for a small rectangle might contain only _s_o_m_e of the
- possible values 0 - 32767, and then the image displayed can
- appear to be mostly all the same color. Choosing one of
- the mmmmaaaaxxxxiiiimmmmiiiizzzzeeee ccccoooolllloooorrrrssss selections remedies this situation.
- Internally, a histogram is created from the mandel data,
- and then the data is mapped to the display such that the
- resulting picture should have a good distribution of
- colors. As nnnn increases in "mmmmaaaaxxxxiiiimmmmiiiizzzzeeee ccccoooolllloooorrrrssss nnnn", the less
- skewed the distribution of colors.
-
- Note that the various "mmmmaaaaxxxxiiiimmmmiiiizzzzeeee ccccoooolllloooorrrrssss nnnn" selections behave
- differently only if the number of distinct values in the
- mandel data is less than the number of display colors used
- by the mandel program. (If the hardware has more than 8
- bit planes, mandel does 12-bit color-index drawing, and
- uses somewhat less than the 4096 entries in the colormap.)
- So, ... if an image was generated with a large iteration
- count, and if that image contains lots of different color
- values, then the 3 "mmmmaaaaxxxxiiiimmmmiiiizzzzeeee ccccoooolllloooorrrrssss" selections will all do
- the same thing, which will still be different than the
- "lllliiiinnnneeeeaaaarrrr" selection.
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD)))) MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD))))
-
-
-
- ####iiiitttteeeerrrraaaattttiiiioooonnnnssss selects the number of iterations to be performed from a
- range of values.
-
- ssssaaaavvvveeee allows you to save the current image in one of 2 formats:
- mandel format or SGI RGB format. A file saved in the
- "mandel format" contains coordinate data, and if such a
- file is given as an argument to mandel, mandel will allow
- further zoom-in operations, etc., to be done on the
- displayed picture. Alternatively, the coordinate data for
- the current picture can be saved to a file. (If the latter
- is done, the picture can be re-generated with
-
- mandel -c `cat fname`
-
- where _f_n_a_m_e is the name of the file containing the
- coordinate data.)
-
- mmmmooooddddeeee selects Mandelbrot or Julia set. If Julia is selected, a
- crosshair cursor appears for selecting the seed point. Use
- the left mouse button to pick a point.
-
- ffffllllooooaaaattttiiiinnnngggg pppptttt pppprrrreeeecccc
- Choose between double precision floating point (64-bit) or
- long double (128-bit).
-
- ccccoooonnnnffffiiiigggguuuurrrraaaattttiiiioooonnnn allows the user to select from the following submenu.
-
- iiiinnnntttteeeerrrrppppoooollllaaaatttteeee.... If row delta (see below) is > n, the picture
- is generated in n passes. Eventually, every scanline of
- the picture is generated. However, each pass contains only
- 1/n-th (approx.) of the total scanlines, and up till the
- final pass, there are gaps in the picture. As a scanline
- is generated, if there is a gap between that scanline and
- the one below or above it, and if iiiinnnntttteeeerrrrppppoooollllaaaatttteeee is set to
- "yes," this causes the gaps to be filled in with
- "reasonable" mandelbrot data (by interpolating between the
- filled-in scanlines).
-
- rrrroooowwww ddddeeeellllttttaaaa.... If delta = 1, then rows are computed in the
- order ymin, ymin+1, ymin+2, ... However, if delta > 1,
- then rows are computed in the order ymin, ymin + d, ymin +
- d*2, ..., followed by ymin + k, ymin + d + k, ymin + d*2 +
- k, ... for appropriate k's until the picture is done.
-
- (Note: If row delta > 1 and "interpolate" is "yes," this
- allows an approximately accurate picture to be generated n
- times faster than by generating the entire picture with no
- gaps.)
-
- rrrroooowwwwssss ppppeeeerrrr ffffaaaarrrrmmmmoooouuuutttt specifies the number of rows at a time
- which each host is given to calculate. If equal to 1, the
- computation is most equally divided among the hosts;
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-
-
-
- MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD)))) MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD))))
-
-
-
- however, this causes more network overhead, since mandel
- has to send out a command (to some remote host) for every
- scanline.
-
- ssssppppaaaarrrrsssseeee ppppaaaasssssssseeeessss.... If "sparse passes" is "yes," this causes the
- first pass (and only the first pass) to be split into 2
- "sparse" passes, where each sparse pass is done by
- computing every other pixel of the scanline. For example,
- with row delta = 2 and "sparse rows" set to "yes", we have:
-
- pass 1a - every even pixel of scanlines 1, 3, 5, ...
- pass 1b - every odd pixel of scanlines 1, 3, 5, ...
- pass 2 - scanlines 2, 4, 6, ...
-
- The default is that the first pass is split into two sparse
- passes only if
-
- (#pixels per scanline) * (max iterations per pixel) >=
- threshold
-
- where "threshold" = 1,000,000. The idea is that the
- threshold will be exceeded only if the picture becomes
- large and computationally expensive to generate. The
- default threshold can be modified by specifying an
- alternate value in the .mandelrc file.
-
- ssssttttoooopppp ddddrrrraaaawwwwiiiinnnngggg causes the processes doing calculations to stop, and causes
- the current image to stop drawing.
-
- eeeexxxxiiiitttt quits the program.
-
- EEEErrrrrrrroooorrrr HHHHaaaannnnddddlllliiiinnnngggg
- When mandel encounters an error when reading data from a remote host, it
- will stop reading from that host for the duration of the current picture
- generation, but will try to use that host again next time, for the next
- picture.
-
- CCCCoooolllloooorrrr ffffiiiilllleeeessss
- mandel contains several default color maps, but it will look for
- alternate or additional color maps in data files beginning with the name
- "color". If you have a file named "colorxy," then "xy" will show up in
- the colors menu.
-
- By default these color files are searched for in the directory named
- "colors", but you may specify a different directory name by having a
- "color dir" entry in .mandelrc.
-
- Each line in a "color" file specifies a color by
-
- <red intensity> <blue intensity> <blue intensity>
-
- with intensities ranging from 0 to 255. Intensities may be delimited by
-
-
-
- PPPPaaaaggggeeee 6666
-
-
-
-
-
-
- MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD)))) MMMMAAAANNNNDDDDEEEELLLL((((6666DDDD))))
-
-
-
- commas, spaces, or tabs.
-
- The first color is that of the mandelbrot set and is usually black
- (0,0,0). Smooth ramps are made between the remaining colors, and the
- non-black part of the picture is drawn using those ramps.
-
- Example of color file contents:
- 0 0 0
- 40 0 0
- 240 0 0
- 240, 240, 0
- 240, 240, 240
-
-
- RRRReeeeggggiiiioooonnnn SSSSeeeelllleeeeccccttttiiiioooonnnnssss wwwwiiiitttthhhh tttthhhheeee MMMMoooouuuusssseeee
- After a picture is displayed, the left mouse button can be used to select
- a new region to zoom in on. If the "Julia" mode is selected after first
- displaying a mandelbrot image, then the left mouse button is used for
- selecting a seed point for the Julia calculations.
-
- When the left mouse button is being used to select a region or seed
- point, the selection can be aborted by depressing either the middle or
- right mouse buttons or the escape key.
-
- BBBBuuuuiiiillllddddiiiinnnngggg
- If you chose to install the demo source, you will have received the
- source code for the mmmmaaaannnnddddeeeellllzzzzoooooooommmm program and a generic Makefile to build
- the binary. The mandelzoom source files are very portable (except for
- assumptions about sizes of certain data types). If you copy the
- mandelzoom source files (*), along with Makefile.generic, to just about
- any unix machine, and type
- make -f Makefile.generic mandelzoom
- the resulting mandelzoom program should work.
- (*) The file "zoomsrc" contains a list of the mandelzoom source files.
-
- AAAAUUUUTTTTHHHHOOOORRRR
- Dave Spalding
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 7777
-
-
-
-